/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.ipartek.formacion.gestformwww.modelo;

import com.ipartek.formacion.gestformwww.modelo.beans.Estado;
import com.ipartek.formacion.gestformwww.modelo.beans.excepciones.GestorFormacionExcepcion;
import com.ipartek.formacion.gestformwww.modelo.clases.DAOFactory;
import java.util.ArrayList;

/**
 *
 * @author Curso
 */
public class ModeloEstado {
    private DAOFactory factoria = null;

    /**
     * Constructor de la clase.
     **/
    public ModeloEstado() {
        factoria = DAOFactory.getDAOFactory(DAOFactory.SQLSERVER);
    }

    /**
     * Método que inserta un estado en la base de datos
     * @param con Convocatoria que es un objeto de tipo convocatoria con los datos de la misma
     * @return boolean  Devuelve un true en caso de que la sentencis haya ejecutado bien o false en caso de que mal
     **/
    public boolean aniadirEstado(Estado estado) throws GestorFormacionExcepcion {
        try {
            return factoria.getIEstadoDAO().crearEstado(estado);
        } catch (GestorFormacionExcepcion gfe) {
            throw new GestorFormacionExcepcion(gfe.getMessage());
        }
    }

    /**
     * Método que borra un estado de la base de datos.
     * @param idEstado String que contiene el id del estado a eliminar.
     * @return boolean *Devuelve un true en caso de que la sentencis haya ejecutado bien o false en caso de que mal
     **/
    public boolean borrarEstados(int idEstado) throws GestorFormacionExcepcion {
        try {
            return factoria.getIEstadoDAO().eliminarEstado(idEstado);
        } catch (GestorFormacionExcepcion gfe) {
            throw new GestorFormacionExcepcion(gfe.getMessage());
        }
    }

    /**
     * Método que modifica un estado en la base de datos.
     * @param estado Estado que es un objeto de tipo estado con los datos del misma
     * @return boolean Devuelve un true en caso de que la sentencis haya ejecutado bien o false en caso de que mal
     **/
    public boolean modificarEstado(Estado estado) throws GestorFormacionExcepcion {
        try {
            return factoria.getIEstadoDAO().modificarEstado(estado);
        } catch (GestorFormacionExcepcion gfe) {
            throw new GestorFormacionExcepcion(gfe.getMessage());
        }
    }
    /**
     * Método que recoge estados de la base de datos y lo devuelve
     * @return boolean Devuelve un true en caso de que la sentencis haya ejecutado bien o false en caso de que mal
     **/
    public ArrayList getEstado() throws GestorFormacionExcepcion {
        try {
            return factoria.getIEstadoDAO().listarEstados();
        } catch (GestorFormacionExcepcion gfe) {
            throw new GestorFormacionExcepcion(gfe.getMessage());
        }
    }
     /**
     * Método que devuelve un estao de la base de datos
     * @param idEstado  int contiene el id del estado que se quiere recoger
     * @return boolean Devuelve un true en caso de que la sentencis haya ejecutado bien o false en caso de que mal
     **/
    public Estado visualizarEstado (int idEstado) throws GestorFormacionExcepcion {
        try {
            return factoria.getIEstadoDAO().visualizarEstado(idEstado);
        } catch (GestorFormacionExcepcion gfe) {
            throw new GestorFormacionExcepcion(gfe.getMessage());
        }
    }

}
